package cn.ahaiahaixx.dp.template;

/**
 * 炖火锅
 * 
 */
public abstract class DunHuoGuo {
  public void kaiqi() {
    System.out.println("打开炉灶");
  }

  /**
   * 每一种火锅菜平的原料不同，所以准备原料的方法无法完成
   */
  public abstract void zhunbeiyuanliao();

  public void dun() {
    System.out.println("开始炖");
  }

  public void shangcai() {
    System.out.println("上菜");
  }
  
  /**
   * 样板方法，品尝火锅，也是业务逻辑处理方法
   */
  public void pinchang() {
    //样板方法的意义在于统一流程，也就是业务逻辑处理的过程一致
    //当时将不同的部分方法变成抽象，由具体的子类完成
    kaiqi();
    zhunbeiyuanliao();
    dun();
    shangcai();
    System.out.println("开始品尝");
  }

}
